package ray.shader;

import java.util.ArrayList;

import ray.Light;
import ray.math.Color;
import ray.math.Vector3;
import ray.*;

/**
 * This interface specifies what is necessary for an object to be a material.
 * You will probably want to add a "shade" method to it.
 * @author ags
 */
public interface Shader {

  /**
   * The material given to all surfaces unless another is specified.
   */
  public static final Shader DEFAULT_MATERIAL = new Lambertian();

public abstract void shade(Color outColor, Scene scene, ArrayList<Light> lights, Vector3 toEye, 
			Intersection inter);

}